在 Vibe Coding 的過程中,每多接一個服務,就很有可能多一份帳單。
網站做到這裡,已經用了十幾個服務:網域、部署、資料庫、寄信、監控、分析……仔細一看,其中大部分都是免費的。
但天下沒有白吃的午餐。這些免費方案,有不少是「先讓你用,用多了再收費」:自己玩玩的時候綽綽有餘,一旦流量起來,很容易就超出額度,帳單也跟著出現。
身為一個精打細算的客家人,今天就來清點這趟旅程目前已經ㄒ消耗的口糧:現在每個月花多少、哪些地方未來可能變貴,又有哪些方法能夠讓自己的網站撐得更久。
把第一天到現在用過的服務列出來:
| 服務 | 用途 | 目前方案 | 每月花費 | 什麼時候會開始變貴 |
|---|---|---|---|---|
| Cloudflare Registrar | 網域 | 按年付費 | 約 US $10/年 | 續約價格依網域後綴而定 |
| Cloudflare | DNS、DMARC 報告 | 免費 | 0 | 幾乎不會,Cloudflare 很佛心 |
| Vercel | 部署、防火牆 | Pro | US$20(含 US$20 的用量額度) | 用量超過額度後,依使用量計費 |
| Supabase | 資料庫、登入 | 免費 | 0 | 資料量、流量超過免費額度 |
| Resend | 寄送驗證信 | 免費 | 0 | 每月超過免費寄送量 |
| Zoho Mail | 收信 | 免費 | 0 | 需要更多帳號或進階功能 |
| GitHub | 程式碼、CI | 免費 | 0 | 私人 repo 的 Actions 執行時間超過額度 |
| GA4、Search Console | 分析、SEO | 免費 | 0 | — |
| Speed Insights | 效能 | 免費 | 0 | 事件超過免費額度會暫停收集,不會收費 |
| Sentry | 錯誤監控 | 免費 | 0 | 錯誤量超過免費額度 |
| AI 工具 | 寫程式、開發、腦力激盪 | ChatGPT Plus、Claude Pro | US$20 + US$20 | 想做的東西變多,Token 不夠時 |
這張表裡有兩種不同的花費:
固定成本好預估,難的是按用量計費。網站突然爆紅、被爬蟲大量造訪,或是程式出錯一直重試,帳單都可能暴增。有些平台可以設定用量通知,避免收到帳單時才嚇一跳。
| 方式 | 怎麼運作 | 適合 | 要注意 |
|---|---|---|---|
| 廣告 | 在頁面放廣告,依瀏覽或點擊分潤 | 流量大、內容公開的網站 | 流量小時收入很少;廣告會影響體驗與速度 |
| 會員訂閱 | 每月付費,換取進階功能 | 有持續價值的工具或內容 | 需要金流、定期扣款與會員權限 |
| 單次付款(商品) | 買一次,永久使用 | 數位商品、課程、實體商品 | 需要金流與訂單管理 |
| 贊助 | 使用者自由贊助 | 個人專案、開源作品 | 收入不穩定 |
文章中實作的專案目前是一個公開的查詢網站,最簡單直接的方式是廣告,未來再加上付費會員可以去掉廣告,或是推出真的很實用的進階功能,吸引使用者付費。
廣告設定起來不麻煩,但收入相對少,除非網站的流量真的很高。很多訂閱制服務都把「去廣告」當成會員福利之一,但老實說,只靠去廣告很難讓人掏錢,通常還要搭配更進階的功能,或是直接賣實體商品。
今天的文章會先以用得到的概念為主,依照我在其他專案的開發經驗,分別說明金流和廣告各自要準備什麼,有些範例會用我在其他專案中的經驗來提及。
如果自己直接處理、傳輸或儲存信用卡資料,就要符合非常嚴格的安全規範(PCI DSS),責任與安全負擔都會大幅增加。一旦外洩,後果非常嚴重。
另一種看似簡單的做法,是直接讓使用者轉帳到自己的銀行帳戶。但短時間內大量、小額、跟平常使用習慣不同的轉帳,可能被銀行視為異常交易,要求說明,甚至限制部分功能。
所以比較常見的做法,是交給第三方金流:使用者在金流公司的頁面輸入卡號,你的網站只會收到「這筆付款成功了」的通知,從頭到尾碰不到卡號。
用餐廳來想,餐廳不會自己發行信用卡、也不會保管客人的卡號,而是跟銀行租一台刷卡機。
| 綠界 | 藍新 | 統一金流 | Stripe | |
|---|---|---|---|---|
| 個人可以申請嗎 | 可以 | 可以 | 可以 | 台灣目前不是 Stripe 正式支援的地區 |
| 定期定額(訂閱需要) | 有 | 有 | 有 | 有 |
| 電子發票 | 有自家服務 | 可串接電子發票服務 | 透過合作的電子發票加值服務中心開立 | 不處理台灣發票 |
| 物流整合 | 有 | 有 | 有 | 無 |
| 沙盒(測試環境) | 公開共用的測試帳號 | 有 可個人申請 | 有 可個人申請 | 每個帳號都有測試模式 |
| 適合 | 一站整合金流、物流、發票 | 台灣網站常見選擇 | 台灣網站常見選擇 | 已有支援地區的公司、主攻海外市場 |
幾個選擇時的重點:
金流公司的審核,不只看身分文件,也會看你的網站。常見的要求:
也就是說,送審前網站要先「看起來像一個真的在做生意的網站」,才比較容易過審。個人申請不需要公司名稱與統編,但需要身分證明和收款帳戶。
我自己的申請經驗
- 綠界:審核比較快(2~3天),但要附的資料相對比較多。除了網站內容,還要求提供實體商品的庫存照片、辦公室照片等證明。
- 統一金流:審核沒那麼嚴格,但最近審核時間變得很久(數十天~數月),要提早申請。
審核標準會隨時間調整,以上是我申請時的經驗,僅供參考。
此外,針對虛擬商品,我個人體感綠界應該更嚴格,他們官網也有提到如果商品與生成式 AI 、點數、票卷相關,會需要申請特約賣家,資格會更嚴格。

【圖 1|一筆付款的完整流程(以付費會員開通進階權益為例)】
這張圖裡有幾個概念:
| 概念 | 白話 | 為什麼重要 |
|---|---|---|
| 以驗證過的結果為準 | 第 9 步導回來的網址,使用者可以自己改 | 不能因為使用者回到「付款成功」頁,就認定他付了錢;交易狀態要以驗證過的背景通知,或主動向金流查詢的結果為準 |
| 簽章 vs 加密 | 簽章確認「內容沒被改,而且對方持有正確的金鑰」;加密是讓別人看不懂內容 | 綠界主要靠簽章(CheckMacValue);藍新、統一會把交易內容加密,再加上簽章。用來簽章和加密的金鑰,只能放在伺服器 |
| 原子性 | 第 7 步的「改成已付款」和「開通權益」,要嘛一起成功,要嘛一起失敗 | 不然可能出現錢收了、權益沒開通。都在同一個資料庫時,用交易(transaction)保證;如果牽涉外部服務,要另外設計重試 |
| 冪等性 | 同一則通知收到兩次,結果要跟收到一次一樣 | 金流公司沒收到第 8 步的回應,就會重送;不能因此重複開通或重複出貨 |
冪等性跟 Day 26 的競態條件有點像,都是「同一件事可能不只發生一次」時會出問題;不同的是,競態條件在意的是「同時發生」,冪等性在意的是「重複發生」。
導回的頁面是給使用者看的;真正改變訂單狀態,要靠後端驗證過的付款結果。
這整個流程,背後還需要透過後端、資料庫去驗證、確認、記住幾件事:
| 要記錄的 | 例如 |
|---|---|
| 訂單 | 訂單編號、金額、狀態(待付款、已付款、已退款) |
| 付款紀錄 | 金流的交易編號、收到的通知內容,方便日後對帳與查問題 |
| 會員權益 | 會員等級、開始與到期日期 |
| 物流(賣實體商品時) | 取貨門市、寄件編號、物流狀態 |
金流公司只負責「收錢」,訂單、權益這些狀態,都要自己的網站記錄和管理。
如果通知一直沒來呢?各家金流通常都有「查詢交易」的 API,可以主動去問某筆訂單的狀態。定期主動核對,就是「對帳」。
金鑰的處理跟 Day 26 一樣:不能加
NEXT_PUBLIC_、不能 commit、不能貼給 AI,只放在伺服器的環境變數。
金流的串接細節很多:參數格式、簽章演算法、各種狀態碼。這正是 AI 擅長的地方。我自己的做法有兩種:
paid-tw 這組 skill。套用之後,AI 就知道參數格式和簽章怎麼算,開發會快很多。延續 Day 26 的原則:裝之前先讀過內容。交給 AI 串接時,有幾件事一定要守住:
| 交給 AI | 自己處理 |
|---|---|
| 依文件產生參數、簽章驗證的程式 | 金流的金鑰(HashKey、HashIV 等),只放在伺服器的環境變數,不貼給 AI |
| 寫 webhook 的處理流程 | 確認簽章驗證失敗時,一定會拒絕 |
| 寫冪等與原子性的處理 | 用沙盒實際跑一次,確認重送通知不會重複開通 |
AI 有可能會寫出 「在使用者導回成功頁時更新訂單」 這種直覺的流程,因為那是測試時最容易看到的地方。但真正可靠的,是背景通知。
串接完,就用沙盒測試。每家金流都有測試環境,可以用測試卡號跑完整個付款流程,不會真的扣款:
| 綠界 | 統一金流 | |
|---|---|---|
| 測試帳號 | 官方提供公開共用的測試帳號 | 申請自己的測試帳號 |
| 測試方式 | 用測試卡號付款 | 可以在後台模擬付款結果 |
| 要注意 | 測試帳號是官方公開的共用帳號,不要填真實的姓名、email 等資料 | 資料只有自己看得到 |
測試時有一個很常見的坑:本機的 localhost 收不到 webhook。 圖1中的第 5 步是金流公司從外面連進你的伺服器,它連不到你電腦裡的 localhost。所以這方面的測試需要部署到 Vercel 的 Preview,或是用之前提過的 ngrok,開一個外面連得到的網址。
跟設定 Supabase Redirect URL 道理一樣:用 ngrok 測試時,網址可能每次啟動都不同,金流的通知網址也要跟著換。
金流的部分先寫到這裡。想實際串接的讀者,可以從申請沙盒帳號開始,照著上面的流程,用 Preview 環境跑一次付款,確認 webhook 收得到、簽章驗得過、訂單狀態有更新。
測試時用的是測試環境的金鑰和網址;上線前,要記得換成正式環境的。這時候 Vercel 區分 Production、Preview 環境變數的功能就很實用:Preview 放測試金鑰,Production 放正式金鑰。
賣實體商品的話,還要考慮出貨:
| 方式 | 說明 | 適合 |
|---|---|---|
| 超商取貨 | 寄到超商,買家自取;可搭配取貨付款 | 小件商品、台灣最普遍的方式 |
| 宅配 | 直接送到買家地址 | 大件或需要送到府的商品 |
部分金流公司本身就整合了物流。以超商取貨為例,流程大概是這樣:

【圖 2|成立超商取貨訂單的流程】
跟金流一樣,物流狀態的變化通常也是靠背景通知(webhook)或查詢 API 取得,同樣要驗證、要能承受重複通知。
門市選擇通常不用自己手刻,物流服務會提供電子地圖,網站要做的是「跳過去、把選好的門市收回來」。但訂單列表、狀態顯示、出貨管理這些介面,就要自己做了。
我自己串物流的經驗
我之前開發一個販售實體商品的網站時,申請並串接物流的小心得:
- 綠界:申請金流時,可以同時送出物流的申請。
- 統一:物流需要另外寄信申請開通,同時需要一個固定的伺服器 IP 來回傳資料。部署在 Vercel 要特別注意,Vercel 預設的對外 IP 不是固定的,要另外處理。
物流牽涉的狀態比金流多很多:寄件、到店、取貨、未取退回……如果只是賣數位商品或會員,可以先不用考慮。
另外,如果只是想賣商品,不一定要自己架網站:不少金流商也提供現成的開店服務,用起來很方便,只是客製化的彈性比較少。
AdSense 要先審核網站,通過後才能顯示廣告。審核會看:
ads.txt。
所以加完程式碼或是
ads.txt之後,也需要重新部署,才會生效。(有一點類似昨天提到的GA4,但是GA4不需要審核,放上程式碼就自動追蹤流量;Google Adsense 則是會需要一段時間來審核。)
ads.txt 是放在網站根目錄的一個文字檔,公開宣告「誰有權在這個網站賣廣告」,防止別人冒用你的網站賣假廣告。它不是強制的,但 Google 強烈建議設定,也可以拿來驗證網站。在 Next.js 裡,放在 public/ads.txt 就好。
審核通常要幾天到幾週。
我個人的經驗大概是3~5天左右。
Google 的廣告可以分成自動或手動兩種:
| 自動廣告 | 手動放置廣告單元 | |
|---|---|---|
| 怎麼做 | 放一段程式碼,Google 自己決定廣告放哪裡、放幾個 | 自己決定位置,放進指定的區塊 |
| 優點 | 設定最簡單 | 版面可控,不會破壞設計 |
| 缺點 | 可能插在奇怪的位置、數量太多 | 要自己規劃與測試 |
自動廣告也不會是強制全開或全關:可以在後台設定排除特定頁面或特定區塊,也可以先用實驗功能只對部分流量測試。
不管哪一種,都要注意 Day 27 的 CLS(畫面跳動):廣告通常比內容晚載入,突然出現時會把下面的內容往下推。手動放置時,要先預留廣告的空間,例如固定區塊的高度,讓廣告載入時不會推動其他內容。
AdSense 的 Offerwall 在 2026 年 4 月全面開放:訪客瀏覽一定數量的頁面後,會看到一個選擇,例如完整看完一段廣告後,換取繼續瀏覽的權限。設定在 AdSense 的「隱私權與訊息」裡。
也有另外一種是自訂的獎勵式廣告,可以自行透過程式碼去設定說看完廣告可以獲得網站內的某項福利(例如解鎖某一篇文章閱讀權限)通常是和訪客願意為了繼續看而付出一點時間代價的網站內容。相對於自動廣告來說,收益會比較高一點(因為使用者會看完。)
付費會員不看廣告,是很常見的設計。實作上有兩個重點:
這需要先有金流和會員權限,有興趣的可以自行去深入查詢。
加上廣告之後,隱私權政策要補上 AdSense:說明網站使用 Google 的廣告服務,可能會用 Cookie 顯示個人化廣告。
如果有歐洲等地區的訪客,Google 要求使用經過認證的 Cookie 同意工具,讓訪客選擇是否同意。這部分依網站的訪客來源決定。
| 產品 | 常見的營收方式 | 金流的重點 |
|---|---|---|
| 電商 | 單次付款 | 物流整合、退貨退款 |
| SaaS | 會員訂閱 | 定期定額、扣款失敗時的處理 |
| 內容網站 | 廣告、會員 | 去廣告權益、Offerwall |
| 線上課程 | 單次付款、分期 | 分期付款、開通課程權限 |
今天的新觀念:
| 觀念 | 一句話 |
|---|---|
| 固定成本 vs 按用量計費 | 一個好預估,一個可能突然暴增 |
| 第三方金流 | 卡號交給金流公司處理,網站只取得付款結果 |
| webhook | 金流公司從背景通知你的伺服器 |
| 簽章、加密 | 一個證明沒被改,一個讓別人看不懂 |
| 原子性、冪等性 | 一起成功或一起失敗;做兩次跟做一次一樣 |
| ads.txt | 宣告誰有權在網站上賣廣告 |
網站要長久,不只要做得出來,還要養得起(沒錢是我的問題)。今天清點完口糧,也知道有哪些方法能讓開發過程中撐得更久。
從 Day 1 到今天,Vibe Coding 出來的網站已經不只是「做得出來」,而是開始變成一個真的能被使用、被維護,也需要被經營的產品。
明天,我們把這一路做過的事整理起來,也會提及幾個有點可惜沒能展開的主題。
我們明天見。